package com.md.controller;

import com.md.application.service.role.RoleApplicationService;

/**
 * @author 刘骄阳
 * 2022-05-20 0:33
 */
@RestController
@RequiredArgsConstructor
public class RoleController implements RoleApi {
  private final RoleApplicationService roleApplicationService;

  /**
   * 添加角色
   *
   * @param request 角色请求实体
   * @return 操作结果
   */
  @Override
  public CommonResult<Long> insert(final InsertRoleRequest request) {
    return roleApplicationService.insert(request);
  }

  @Override
  public CommonResult<Boolean> update(final UpdateRoleRequest request) {
    return roleApplicationService.update(request);
  }

  /**
   * 绑定角色与权限
   *
   * @param request 角色权限绑定请求实体
   * @return 修改结果(true : 成功 ; false : 失败)
   */
  @Override
  public CommonResult<Boolean> bindRoleApi(final BindRoleApiRequest request) {
    return roleApplicationService.bindRoleApi(request);
  }

  /**
   * 查询角色详情
   *
   * @param request 查询角色详情请求实体
   * @return 角色详情
   */
  @Override
  public CommonResult<RoleDetailResponse> query(final IdRequest request) {
    return roleApplicationService.query(request);
  }

  /**
   * 查询角色列表
   *
   * @param request 查询角色列表请求实体
   * @return 角色列表
   */
  @Override
  public CommonResult<PageResponse<RoleResponse>> selectPage(final QueryRoleRequest request) {
    return roleApplicationService.selectPage(request);
  }
}
